﻿using System;
using System.Collections.Generic;
using SocialApi.Instagram.Entities.Methods.Comments;
using SocialApi.Instagram.Entities.Methods.Likes;
using SocialApi.Instagram.Entities.Methods.Locations;
using SocialApi.Instagram.Entities.Methods.Users;

namespace SocialApi.Instagram.Entities
{
    internal class Result : IResult
    {
        #region Члены IResult

        /// <summary>
        /// Содержит информацию о локации
        /// </summary>
        public ILocationMethods Location { get; private set; }

        /// <summary>
        /// Методы для работы с комментариями
        /// </summary>
        public ICommentMethods Comments { get; private set; }

        /// <summary>
        /// Пользовательские методы
        /// </summary>
        public IUserMethods User { get; private set; }

        /// <summary>
        /// Содержит информацию о "лайках"
        /// </summary>
        public ILikeMethods Likes { get; private set; }

        /// <summary>
        /// Данные об изображении
        /// </summary>
        public IImages Images { get; private set; }

        /// <summary>
        /// Методы для работы с отметками
        /// </summary>
        public IEnumerable<string> Tags { get; private set; }

        /// <summary>
        /// Название ленты
        /// </summary>
        public ICaption Caption { get; private set; }

        /// <summary>
        /// Пользователь, добавил ссылку
        /// </summary>
        public bool HasLiked { get; private set; }

        /// <summary>
        /// URL ленты
        /// </summary>
        public string Link { get; private set; }

        /// <summary>
        /// Дата создания
        /// </summary>
        public DateTime Created { get; private set; }

        /// <summary>
        /// Тип
        /// </summary>
        public string Type { get; private set; }

        /// <summary>
        /// Фильтр
        /// </summary>
        public string Filter { get; private set; }

        /// <summary>
        /// Id ленты
        /// </summary>
        public string Id { get; private set; }

        #endregion

        public Result()
        {
            Location = new LocationMethods();
            Comments = new CommentMethods();
            User = new UserMethods();
            Likes = new LikeMethods();
            Images = new Images();
            Tags = new List<string>();
            Caption = new Caption();
        }
    }
}